/-imports
/-storage ...
/-storage/attached ...
AttachedStorage.ts
LocalStorageStorage.ts
WebSQLStorage.ts
/-typings
knockout.d.ts
websql.d.ts
stringUtils.ts
teapo.html
74
 
75
                obj[name] = value;
76
              }
77
 
78
              callback(null);
79
            },
80
            (transaction, error) => callback(WebSQLStorage.wrapSQLError(error)));
81
 
82
          callback(null);
83
        },
84
        error => callback(WebSQLStorage.wrapSQLError(error)));
85
 
86
    }
87
 
88
    update(name: string, obj: any, callback: (error: Error) => void) {
89
 
90
      this._db.transaction(
91
        transaction => {
92
 
93
          var updateQuery: string[] = [
94
            'INSERT OR REPLACE INTO "',
95
            this._mangler.mangleDatabaseObjectName(name),
96
            '" VALUES (?,?)'
97
          ];
98
          var updateQueryArgs: string[];
99
 
100
          for (var k in obj) if (obj.hasOwnProperty(k)) {
101
            // UPDATE mangledTableName SET ...
102
          }
103
 
104
          transaction.executeSql(
105
            updateQuery,
106
            updateQueryArgs,
107
            (transaction, result) => {
108
              callback(null);
109
            },
110
            (transaction, error) => callback(WebSQLStorage.wrapSQLError(error)));
111
 
112
          callback(null);
113
        },
114
        error => callback(WebSQLStorage.wrapSQLError(error)));
115
 
116
    }
117
 
118
  }
119
  
120
  export module WebSQLStorage {
121
 
122
    export function detect(uniqueKey: string, callback: (error: Error, storage: AttachedStorage) => void, windowOverride = window) {
123
 
124
      var _openDatabase: typeof openDatabase = (<any>windowOverride).openDatabase;
125
 
126
      if (!_openDatabase) {